
        <html>
			<head>
			     <title>KeyRaider：迄今最大规模的苹果账号泄露事件 - 小饼仔</title>
				 <meta http-equiv="content-type" content="text/html; charset=UTF-8">
			</head>
			<body>
				<h1>原文地址:<a href="http://drops.wooyun.org/papers/8363">http://drops.wooyun.org/papers/8363</a></h1>
				
      <p>
        <p>from:<a href="http://researchcenter.paloaltonetworks.com/2015/08/keyraider-ios-malware-steals-over-225000-apple-accounts-to-create-free-app-utopia/">KeyRaider: iOS Malware Steals Over 225,000 Apple Accounts to Create Free App Utopia</a></p>

<h1>摘要</h1>

<hr />

<p>最近，<code>WeipTech（</code>威锋技术组）分析了一些用户报告的<code>可疑iOS应用</code>，发现了存储在某服务器上超过<code>22,5000</code>个有效的Apple账户和密码。</p>

<p>通过与<code>WeipTech</code>的合作，我们（<code>Paloalto</code>）识别了92个尚未发现过的恶意软件样本。为了找出恶意软件作者的意图，我们对样本进行了分析，并将这个恶意软件家族命名为“<code>KeyRaider</code>”。从结果来看，我们相信这是有史以来因恶意软件所造成的最大Apple账号泄露事件。</p>

<p>在中国，KeyRaider 将目标锁定在已越狱的iOS设备上，并通过第三方Cydia源传播。并且这个恶意软件很可能已经影响到了18个国家的用户，包括中国、法国、俄罗斯、日本、英国、美国、加拿大、德国、澳大利亚、以色列、意大利、西班牙、新加坡和韩国等。</p>

<p><code>KeyRaider</code> 通过<code>MobileSubstrate</code>框架来<code>hook</code>系统进程，拦截<code>iTunes</code>通信来窃取<code>Apple</code>账户用户名、密码和设备<code>GUID</code>。 它还会窃取<code>iPhone</code> 和 <code>iPad</code>设备上的<code>Apple</code> 推送通知服务证书和私钥、<code>App Store</code>购买凭证，并禁用本地和远程解锁功能。</p>

<p><code>KeyRaider</code>已经成功窃取了超过<code>22，5000</code>个有效的<code>Apple</code>账户、输千个证书、私钥和购买凭证。恶意软件将窃取到的数据上传到了存在漏洞的C2(<code>command and control</code>)服务器上，因此暴露了用户信息。</p>

<!--more-->

<p>此次攻击的目的是为了让用户通过使用两款iOS越狱应用（越狱后通过<code>Cydia</code>源安装的应用）来免费下载官方<code>App Store</code>的任意应用，且不需要付款就可以在应用内进行购买服务。越狱应用是能够让用户执行在正常设备上无法进行的操作的软件包。</p>

<p>这两款越狱应用会劫持app购买请求，下载存放在<code>C2 服务器</code>中被窃取的账户和购买凭证，然后模拟<code>iTunes</code>协议登陆到<code>Apple</code>服务器，购买<code>app</code>或其他用户请求的项目。这两款越狱应用已经被下载超过<code>20,000</code>次，这意味着大约<code>20,000</code>名用户正在滥用其他<code>225,000</code>个被窃取的证书。</p>

<p>一些受害者已经报告了他们的Apple账户存在非正常app购买记录和其他一些勒索行为。</p>

<p><code>Palo Alto Networks</code>和<code>WeipTech</code> 已经提供了能够检测<code>KeyRaider</code> 恶意软件和识别被窃取的证书的服务。在接下来的内容中，我们会提供恶意软件和攻击的细节。</p>

<h1>发现KeyRaider</h1>

<hr />

<p>此次攻击最早由<code>i_82</code>发现，他是一名来自扬州大学的学生、<code>WeipTech</code>成员。<code>WeipTech</code>是一个非职业技术团体，由<code>WeiPhone</code>(中国最大的Apple粉丝网站)的用户组成。之前<code>WeipTech</code>与我们合作，披露了<code>iOS</code>和<code>OS X</code>上的恶意软件<code>AppBuyer</code>、<code>WireLurker</code>。</p>

<p>从2015-07-01开始，<code>WeipTech</code> 开始调查一些用户Apple账户在未经授权的情况下，购买和安装了<code>iOS app</code>。再对用户安装的越狱应用进行调查后，他们发现了一款越狱应用收集用户信息，并上传到一个未知的网站。他们发现这个网站存在SQL注入，能够查看到所有的数据记录。<code>Figure 1</code>是”<code>top 100</code>”数据库的截图</p>

<p><img src="http://static.wooyun.org//drops/20150901/2015090105151293512.png" alt="enter image description here" /></p>

<p>Figure 1. WeipTech 发现在C2服务器上存在SQL注入(from WeipTech)</p>

<p>在数据库中，<code>WeipTech</code> 发现了标明为“<code>aid</code>”字段一共有<code>225,941</code> 条记录。大约2万条记录包含<code>明文用户名</code>、<code>密码</code>、<code>GUIDs</code>。剩余的记录是加密的。</p>

<p>通过逆向恶意应用，<code>WeipTech</code> 发现了一段代码，这段代码中使用静态<code>key</code>为“<code>mischa07</code>”的AES加密算法对数据进行加密。利用静态key，我们能够解密用户名和密码。经过登陆验证，他们确信记录中的信息都是有效的Apple账户。在网站管理员发现、关闭服务之前，WeipTech调查人员下载了大约一半的数据库记录。</p>

<p>8月25日，<code>WeipTech</code>在微博发布漏洞预警，将漏洞提交到<code>WooYun</code>（乌云漏洞报告平台），并后续转交第三方合作机构<code>CNCERT/CC</code>（国家互联网应急响应中心）处理。</p>

<p>当 <code>Palo Alto Networks</code>研究人员在分析<code>WeipTech</code> 报告的恶意软件时，我们发现它没有包含恶意代码来窃取密码并上传数据到<code>C2 服务器</code>。然而，通过<code>WeipTech</code> 提供的其他信息，我们发现存在其他的恶意越狱应用，存在窃取用户信息并上传到相同的服务器上。</p>

<p>我们将这个新的iOS恶意软件家族命名为 “<code>KeyRaider</code>” ，因为它会窃取密码、私钥和证书。</p>

<h1>KeyRaider 来源</h1>

<hr />

<p>据我们了解，<code>KeyRaider</code>仅通过 <code>Weiphone’Cydia</code> 仓库在越狱iOS设备上来进行传播。不像其他的<code>Cydia源</code>，如<code>BigBoss</code>、<code>ModMyi</code>。<code>WeiPhone</code>为注册用户提供私有仓库，用户可以直接上传他们的越狱应用app，并与其他人进行共享</p>

<p>在2015年，一个名为“<code>mischa07</code>”的用户，上传了至少15款<code>KeyRaider</code> 应用到它的私人仓库(<a href="http://apt.so/index.php?r=cydiaTa/index&amp;user_id=8676626">http://apt.so/index.php?r=cydiaTa/index&amp;user_id=8676626</a>)，如<code>Figure 2</code>. 此外，他的名字也被作为加解密<code>key</code>，硬编码在恶意软件中，如<code>Figure 3</code>。我们高度怀疑此人为<code>KeyRaider’s</code> 的开发者。</p>

<p><img src="http://static.wooyun.org//drops/20150901/2015090105151310353.png" alt="enter image description here" /></p>

<p>Figure 2. mischa07’s 个人Cydia 仓库</p>

<p><img src="http://static.wooyun.org//drops/20150901/2015090105151388231.png" alt="enter image description here" /></p>

<p>Figure 3. “mischa07″ 作为加密key被硬编码在恶意软中</p>

<p>根据<code>Weiphone</code>的网页显示，一些由<code>mischa07</code> 上传的越狱应用已经被下载过上万次，如<code>Figure 4</code>。这些app和工具提供如游戏作弊、系统调优和app广告过滤等功能。</p>

<p>在<code>mischa07</code>的仓库中，有两款特别的应用</p>

<p>●<code>iappstore</code> (Figure 5): 能够让用户从Apple官方应用商店免费下载需要付费的应用</p>

<p>●<code>iappinbuy</code>：能够让用户在一些官方应用商店下载的app中免费购买付费道具或服务</p>

<p><code>Mischa07</code>也在 <code>Weiphone</code> 社区中对这两款越狱应用进行推广，如<code>Figure 6</code>，但一些用户并不相信这些所谓神奇的功能。然而，根据<code>Weiphone’s</code> 网站上显示，<code>iappinbuy</code> 仍人有<code>20,199</code>次下载，如<code>Figure 4</code>，而<code>iappstore</code> 有62次下载(仅对最新版进行统计)</p>

<p><img src="http://static.wooyun.org//drops/20150901/2015090105151376636.png" alt="enter image description here" /></p>

<p>Figure 4. 一个恶意样本被下载超过30,000 次</p>

<p><img src="http://static.wooyun.org//drops/20150901/2015090105151433209.png" alt="enter image description here" /></p>

<p>Figure 5.  iappstore 恶意软件能够直接从App Store安装需要付费的 apps</p>

<p><img src="http://static.wooyun.org//drops/20150901/2015090105151490209.png" alt="enter image description here" /></p>

<p>Figure 6. 作者推广它的iappstore 应用</p>

<p>另一名以“<code>氵刀八木</code>” 或 “<code>bamu</code>”.的身份的Weiphone 用户也在传播 <code>KeyRaider</code>  恶意软件。因为<code>Bamu</code>的个人仓库(<a href="http://apt.so/aptso">http://apt.so/aptso</a>)提供许许多有用的应用，这使得它在社区中非常受欢迎。在这次攻击被揭露之后，<code>bamu</code>已经删除了仓库中他所上传的所有恶意软件，并关闭了它。在<code>Weiphone</code>的帮助下，我们对<code>Bamu</code>上传的所有应用进行了检查，其中77款应用中都包含了<code>KeyRaider</code> 恶意软件。与<code>mischa07</code> 开发不同版本的恶意软件不同，<code>bamu</code>是通过对已存在app(如<code>iFile</code>, <code>iCleanPro</code> 和 <code>avfun</code>)进行重新打包，并在其中加入恶意代码。</p>

<p>当<code>KeyRaider</code> 将窃取到的用户密码上传到<code>C2 服务器</code>时， <code>HTTP URL</code>中会包含一个名为 “<code>flag</code>”或”<code>from</code>”的参数，用来追踪受感染的来源。在<code>mischa07</code>的代码中，这个参数的值通常为app应用的名字，如’<code>letv</code>’。而在<code>bamu</code>的应用中，则是“<code>bamu</code>”。从泄露的数据的统计得出，超过67%的被窃取信息来至与<code>bamu</code>.</p>

<p>因为<code>bamu</code> 仅仅是一个分销者(<code>distributor</code>)，后面的行为分析主要集中在来至<code>mischa07</code>的应用样本</p>

<h1>窃取用户数据</h1>

<hr />

<p><code>KeyRaider</code>收集三种用户数据，通过<code>HTTP</code>请求上传到<code>C2服务器</code>，这里发现了两个不同的<code>C2服务器</code></p>

<pre><code>•&lt;top100.gotoip4.com&gt;
•&lt;www.wushidou.cn&gt;
</code></pre>

<p>在分析的过程中，这些域名都被解析到了<code>113.10.174.167</code>这个IP地址。在C2服务器上的 “<code>top100</code>” 数据库里有三张表 “<code>aid</code>”, “<code>cer</code>t” 和 “<code>other</code>”。 在<code>server</code>端，<code>KeyRaider</code> 利用4个<code>PHP</code>脚本来存取数据库，<code>aid.php</code>, <code>cert.php</code>, <code>other.php</code> 和 <code>data.php</code> 通过分析代码和<code>WeipTech</code>下载的泄露数据，我们发现<code>aid</code>表存储<code>225,941</code>条记录，包含<code>Apple ID</code>的用户名、密码、设备<code>GUID</code>。 <code>Cert</code>表存储了<code>5,841</code>条受感染设备的证书和私钥，而这些信息用于<code>Apple</code>推送消息通知服务，如<code>Figure 7</code>。最后<code>other</code>表存储了超过<code>3,000条</code>设备的<code>GUID</code>和来至<code>app store server</code> 的<code>app</code>购买凭证</p>

<p><img src="http://static.wooyun.org//drops/20150901/2015090105151450550.png" alt="enter image description here" /></p>

<p>Figure 7. 泄露cert表中的一条记录</p>

<p>我们对泄露的<code>Apple ID</code>邮箱地址进行了整理，有超过一半的用户使用QQ邮箱，下是排名前十的账户邮箱地址域名（其中6个主要由中国用户在使用）</p>

<pre><code><a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="d537557795a4a4fbb6bab8">[email&#160;protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script>
<a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="799bf9db39484f4a571a1614">[email&#160;protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script>
<a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="a7452705e7cec4cbc8d2c389c4c8ca">[email&#160;protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script>
<a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="d032507290b7bdb1b9bcfeb3bfbd">[email&#160;protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script>
<a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="c022406280f1f2f6eea3afad">[email&#160;protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script>
<a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="fb197b59bb93948f969a9297d5989496">[email&#160;protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script>
<a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="29cba98b695a404748074a4644">[email&#160;protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script>
<a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="997b193bd9eff0e9b7e8e8b7faf6f4">[email&#160;protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script>
<a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="2ac8aa886a474f04494547">[email&#160;protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script>
<a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="7193f1d3314042485f121e1c">[email&#160;protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script>
</code></pre>

<p>然而，我们也发现一些属于其他国家或地区的邮箱地址域名，这包括</p>

<pre><code>•tw: Taiwan
•fr: France
•ru: Russia
•jp: Japan
•uk: United Kingdom
•ca: Canada
•de: Germany
•au: Australia
•us: United States
•cz: Czech Republic
•il: Israel
•it: Italy
•nl: Netherlands
•es: Spain
•vn: Vietnam
•pl: Poland
•sg: Singapore
•kr: South Korea
</code></pre>

<h1>恶意行为</h1>

<hr />

<p><code>KeyRaider</code>恶意代码存在于 <code>Mach-O</code> 动态库中，作为<code>MobileSubstrate</code> 框架的插件。通过<code>MobileSubstrate API</code>，恶意软件能够<code>hook</code>系统进程或其他<code>iOS apps</code>的任意<code>API</code></p>

<p>之前许多iOS恶意软件家族也同样滥用<code>MobileSubstrate</code>。比如由<code>Reddit</code>用户发现，<code>SektionEins</code>  分析的the Unflod (<code>aka SSLCreds or Unflod Baby Panda</code>) ，会拦截<code>SSL</code>加密通信，窃取<code>Apple</code>账户密码。去年发现的<code>AppBuler</code>也利用了同样的技术来窃取密码、在<code>app store</code>中购买<code>app</code>。<code>KeyRaider</code> 进一步利用了次技术。<code>KeyRaider</code> 主要实现了一下恶意行为</p>

<pre><code>●窃取Apple账户(用户名、密码)和设备GUID
●窃取被用于Apple推送通知服务的证书和私钥
●阻住受感染的设备通过密码和iCloud 服务来解锁设备
</code></pre>

<p>注：<code>MobileSubstrate</code>是一个框架，允许第三方的开发者在系统的方法里打一些运行时补丁以扩展一些方法，类似于OS X上的<code>Application Enhancer</code>。所以iOS系统越狱环境下安装绝大部分插件，必须首先安装<code>MobileSubstrate</code></p>

<h1>窃取Apple账户数据</h1>

<hr />

<p>大部分<code>KeyRaider</code> 样本<code>hook itunesstored</code>进程的 <code>SSLRead</code>和<code>SSLWrite</code>函数(Figure 8). <code>itunesstored</code> 是系统守护进程，负责与<code>app store</code>进行通信(使用 iTunes 协议)。</p>

<p><img src="http://static.wooyun.org//drops/20150901/2015090105151597391.png" alt="enter image description here" /></p>

<p>Figure 8. KeyRaider hooks SSLRead and SSLWrite in itunesstored</p>

<p>当<code>App Store</code> 客户端像用户请求输入<code>Apple</code>账户登录时，登录信息会通过<code>SSL</code>加密会话发送到<code>App Store server</code>。在<code>SSLwrite</code>的替换函数中，<code>KeyRaider</code> 会寻找此类会话，通过特定的pattern在发送的数据中搜寻<code>Apple</code> 账户的用户名、密码和设备 <code>GUID</code>(Figure 9). 接下来，在<code>SSLRead</code>替换函数中，这些凭证会通过AES加密算法，使用静态的key “<code>mischa07</code>”来加密，然后发送到<code>KeyRaider  C2 服务器</code>(Figure 10).</p>

<p><img src="http://static.wooyun.org//drops/20150901/2015090105151573890.png" alt="enter image description here" /></p>

<p>Figure 9. Searching for Apple account information in SSL data</p>

<p><img src="http://static.wooyun.org//drops/20150901/2015090105151545183.png" alt="enter image description here" /></p>

<p>Figure 10. Uploading stolen credentials to the C2 server</p>

<p>除了<code>hook SSLRead</code>和<code>SSLWrite</code>，<code>KeyRaider</code> 需要调用<code>MGCopyAnswer</code>(“<code>UniqueDeviceID</code>”) 来读取设备的<code>GUID</code>。</p>

<h1>窃取证书和私钥</h1>

<hr />

<p>在一些样本中，<code>KeyRaider</code> 也会<code>hook apsd</code>守护进程 – 负责<code>iOS</code>系统的<code>Apple</code>推送通知服务。它<code>hook</code> 定义在<code>Security</code> 框架的<code>SecItemCopyMatching</code> 函数。这个API用于搜寻匹配给定查询的 <code>keychain items</code>。</p>

<p>当搜索查询有值为“<code>APSClientIdentity</code>”的<code>label</code> ，<code>KeyRaider</code> 会执行原来<code>SecItemCopyMatching</code>函数，然后调用<code>SecIdentityCopyCertificate</code> 和 <code>SecIdentityCopyPrivateKey</code>，从原本函数执行返回结果中来拷贝证书和私钥 (Figure 11). 之后，这些信息和<code>GUID</code>一起被发送到C2服务器上(Figure 12). 在<code>iOS keychain</code>中，被标记<code>APSClientIdentity</code> 的key用于推送通知。通过这些信息，攻击者可以在系统上伪造推送通知。</p>

<p><img src="http://static.wooyun.org//drops/20150901/2015090105151650564.png" alt="enter image description here" /></p>

<p>Figure 11. Copy push service’s certificate and private key</p>

<p><img src="http://static.wooyun.org//drops/20150901/2015090105151623420.png" alt="enter image description here" /></p>

<p>Figure 12. Upload certificate and key</p>

<h1>锁定设备</h1>

<hr />

<p>当<code>KeyRaider  hook SecItemCopyMatching</code>，除了拦截通知证书，它也会将当前查询的label和特定的字符串 “<code>com.Apple.lockdown.identity.activation</code>”进行比较。如果匹配，<code>KeyRaider</code> 会将查询结果的值设置为0. (Figure 13)</p>

<p>再发布文章之前，网上还没有关于<code>com.apple.lockdown.identity.activation</code> 查询的公开文档。我们相信这个查询是用于解锁设备的。通过将返回值设置为0，<code>KeyRaider</code> 会阻止用户解锁他们的设备，即使通过手机输入了正确的解锁码或通过<code>iCloud</code>服务远程解锁设备。</p>

<p>在我们目前发现的所有样本信息中，这段代码是独立的，没有被其它代码调用。它仅仅是被实现，然后被导出为一个函数。然而，我们已经有证据表明，利用这个函数来进行实际攻击已经发生了。</p>

<h1>免费的APPS</h1>

<hr />

<p>一些<code>KeyRaider</code> 样本实现了从<code>C2服务器</code>下载购买凭证和Apple账户的功能。但这个功能仅仅在 <code>iappstore</code> 和 <code>iappinbuy</code> 两个应用中被真正使用过。 根据用户的描述，<code>iappstore</code> 能够免费从<code>app store</code>中下载任意应用。让我们来看一下他们是如何实现的.</p>

<p>这个<code>app hook SSLWrite</code> 两次，第一次用于窃取密码。第二次<code>hook</code> 会尝试判断当前的HTTP请求是否是“<code>POST /WebObjects/MZBuy.woa/wa/buyProduct</code>”。以此来判断当前会话是否是使用<code>iTunes</code>协议进行购买。(Figure 14).</p>

<p><img src="http://static.wooyun.org//drops/20150901/2015090105151613719.png" alt="enter image description here" /></p>

<p>Figure 14. Hooking app purchase session</p>

<p>如果请求是购买行为，SSLWrite会被调用，<code>hooking</code>代码会尝试在发送的数据(用于获取当前app的付款信息)中匹配一些关键词，如“<code>salableAdamId</code>”, “<code>appExtVrsId</code>”, “<code>vid</code>”, “<code>price</code>”, “<code>guid</code>”, “<code>installedSoftwareRating</code>” and “<code>pricingParameters</code>” 。如果这个app是需要付费的，<code>fire()</code>函数会被调用。</p>

<p><code>Fire</code> 函数会调用<code>readAid()</code>函数，<code>readAid</code>函数会读取位于<code>/var/mobile/Documents/iappstore_aid.log</code>的本地文件。这个文件包含了用户账户的用户名、密码、设备<code>GUID</code>，相关的<code>iTunes</code>会话<code>token</code>、<code>cookie</code>、<code>电话号码</code>、<code>运营商</code>、<code>操作系统信息</code>、<code>iTunes CDN 服务器号</code>。然后解析数据，创建一个账户对象。</p>

<p>如果文件不存在，它会调用 <code>readAidUrl()</code>，<code>readAidUrl</code>会从<code>KeyRaider C2服务器</code>下载新的账户信息，然后创建一个账户对象。(Figure 15). Figure 16 展示了一个从服务器下载的账户。</p>

<p><img src="http://static.wooyun.org//drops/20150901/2015090105151761835.png" alt="enter image description here" /></p>

<p>Figure 15. Downloads apple account from C2 server</p>

<p><img src="http://static.wooyun.org//drops/20150901/2015090105151712772.png" alt="enter image description here" /></p>

<p>Figure 16. Stolen apple account was downloaded from C2 server</p>

<p>创建账户对象之后，<code>fire()</code>会生成plist格式的字符串，里面包含账户信息，接着调用 <code>login()</code>和<code>sendBuy()</code>.</p>

<p><code>Login()</code>函数会创建一个连接到以下URL的HTTP连接，URL中会带上<code>plist</code>字符串和一个类似<code>Appstore</code>客户端用户代理的值</p>

<pre><code>•p*-buy.itunes.Apple.com/WebObjects/MZFinance.woa/wa/authenticate
</code></pre>

<p>这会造成使用远程Apple账户来登陆当前的<code>iTunes</code>会话(Figure 17)</p>

<p><img src="http://static.wooyun.org//drops/20150901/2015090105151741636.png" alt="enter image description here" /></p>

<p>Figure 17. Emulating login protocol</p>

<p>发起<code>Login</code>请求之后，<code>login()</code>会解析返回的结果，获取<code>cookie</code>、<code>token</code>和其他信息，然后将这些信息和账户密码保存到本地<code>iappstore_aid.log</code>文件中，供后续购买时使用。如果因为密码错误导致登陆失败，它会再一次调用<code>readAidUrl()</code> ，从<code>C2 server</code>中获取一个不同的Apple账户。</p>

<p><code>sendBuy()</code>函数的工作与<code>login()</code>函数类似，但请求了另一个<code>URL</code>，用于<code>app</code>购买验证</p>

<pre><code>•p*-buy.itunes.apple.com/WebObjects/MZBuy.woa/wa/buyProduct
</code></pre>

<p>通过这个过程，<code>iappstore</code> 应用可以使用窃取到的账户成功购买任意app 除了这些操作之外，在两个独立的函数<code>verifySF()</code> 和<code>verifySF2()</code> 中，<code>KeyRaider</code> 也会尝试获取Apple账户密码找回问题和答案。这个函数在我们的分析样本中还未完成。</p>

<p><code>iappinpay</code>的功能和<code>iappstore</code>类似。唯一的不同是购买接口改变了。(Figure 18)。在C2服务器数据库中也存储了一些之前在app内购买（ In-App-Purchase）的凭证，作者似乎计划实现重用这些凭证的功能，如将这些凭证发送到Apple server，以证明他们之前已经购买过此服务。</p>

<h1>电话勒索</h1>

<hr />

<p>除了窃取Apple账户来购买app，<code>KeyRaider</code> 拥有内置的锁定功能来进行勒索。</p>

<p>之前的一些iPhone勒索软件工具基于通过<code>iCloud服务</code>来远程控制iOS设备。这类攻击可以通过重置账号密码来解决。而对于<code>KeyRaider</code> ，它在本地禁用了所有解锁操作，及时是输入的正确的解锁码或密码。此外，它也能使用窃取的证书和私钥来发送通知消息来索要赎金，而推送通知消息不需要经过Apple推送服务器。因此，之前使用的解决方法不再有效。</p>

<p>下面是一名受害者报告的被勒索截图</p>

<p><img src="http://static.wooyun.org//drops/20150901/2015090105151725097.jpg" alt="enter image description here" /></p>

<p>Figure 19. Ransom message on locked iPhone</p>

<h1>其他潜在的风险</h1>

<hr />

<p>下面是一些攻击者利用你泄露的用户名、密码等信息能够做的事情</p>

<p><strong>应用推广</strong>：在受害者手机中安装指定的app，来提升<code>App Store rankings</code></p>

<p><strong>Cash Back</strong>：使用的账户来购买付费应用</p>

<p><strong>垃圾邮件</strong>：使用<code>iMessage</code>来发送垃圾信息</p>

<p><strong>勒索</strong>：利用账户密码，窃取隐私信息来进行勒索 等等</p>

<h1>保护和预防</h1>

<hr />

<p>需要注意，<code>KeyRaider</code> 仅影响越狱的iOS设备，未越狱设备不受影响。 <code>WeipTech</code>上线了查询服务 &lt;http://www.weiptech.org/ >，你可以输入自己的Apple账户邮箱，了解它是否被泄露。<code>Palo Alto Networks</code> 在8月26日将窃取的账户信息反馈给了<code>Apple</code>。还需要注意的是，因为攻击者发现并修复了其接收数据服务器的漏洞，<code>WeipTech</code> 只能还原约一半的被窃取数据。因此，从不受信任的<code>Cydia 源</code>安装过这类越狱应用的用户可能都会受影响。</p>

<p>用户可以通过下列方法来判断自己的iOS设备是否受影响</p>

<pre><code>1.通过Cydia安装openssh
2.通过SSH连接到device
3.到 /Library/MobileSubstrate/DynamicLibraries/ 目录，对目录下的所有文件grep以下字符串

•wushidou
•gotoip4
•bamu
•getHanzi
</code></pre>

<p>如果任何<code>dylib</code> 文件包含任意一个字符串，删除这些文件和同名的<code>plist</code>文件，然后重新启动</p>

<p>除此之外，我们也建议用户在移除恶意软件之后，修改Apple账户的密码，并开启双因素认证功能。<a href="https://support.apple.com/en-us/HT204152">https://support.apple.com/en-us/HT204152</a> 最后，如果你想避免遭遇 <code>KeyRaider</code> 以及类似恶意软件，请尽量避免越狱。<code>Cydia 源</code>不会对上传应用进行严格的安全检查，通过它安装应用存在风险。</p>

<h1>样本信息</h1>

<hr />

<pre><code>9ae5549fdd90142985c3ae7a7e983d4fcb2b797f CertPlugin.dylib
bb56acf8b48900f62eb4e4380dcf7f5acfbdf80d MPPlugin.dylib
5c7c83ab04858890d74d96cd1f353e24dec3ba66 iappinbuy.dylib
717373f57ff4398316cce593af11bd45c55c9b91 iappstore.dylib
8886d72b087017b0cdca2f18b0005b6cb302e83d 9catbbs.GamePlugin_6.1-9.deb
4a154eabd5a5bd6ad0203eea6ed68b31e25811d7 9catbbs.MPPlugin_1.3.deb
e0576cd9831f1c6495408471fcacb1b54597ac24 9catbbs.iappinbuy_1.0.deb
af5d7ffe0d1561f77e979c189f22e11a33c7a407 9catbbs.iappstore_4.0.deb
a05b9af5f4c40129575cce321cd4b0435f89fba8 9catbbs.ibackground_3.2.deb
1cba9fe852b05c4843922c123c06117191958e1d repo.sunbelife.batterylife_1.4.1.deb
</code></pre>

<h3>致谢</h3>

<p>特别感谢来自<code>WeipTech</code>的<code>i_82</code>向我们共享数据、报告以及其它有用的信息。 感谢来自<code>WeipTech</code>的<code>CDSQ</code>向我们提供样本，感谢来自<code>WooYun</code>的<code>Xsser</code>、<code>FengGou</code>的信息共享。 感谢<code>Palo Alto Networks</code>的<code>Sereyvathana Ty</code>、<code>Zhaoyan Xu</code>、<code>Rongbo Shao</code>几位对恶意软件进行的分析，感谢<code>Palo Alto Networks</code>的<code>Ryan Olson</code>对本报告的审校。</p>      </p>
    
			</body>
		</html>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          